/*
 * Copyright (C) 2022 KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <https://www.gnu.org/licenses/>.
 */

import QtQuick 2.12
import QtQuick.Controls 2.5
import QtQml.Models 2.2
import QtQuick.Window 2.2
import QtQuick.Layouts 1.3
import QtQml 2.12
import org.ukui.tablet 1.0
import org.ukui.qqc2style.private 1.0 as StylePrivate
import "launcherController.js" as Controller
import "createUninstallDialog.js" as UninstallJs
import "./baseComponent"
import "./LauncherItemViewComponent"
import "."

Item {
    id: tabletRoot
    function listViewItemCount() {
        return listView.count
    }
    property var viewMoel: null
    property bool dragEnable: true
    property int groupId: -1
    property var pageContainer: listView

    property real cellWidth: tabletRoot.width/4
    property real cellHeight: tabletRoot.height/4
    property real iconSize: 96 * Style.tabletScaleFactor

    property string iconPromptBox
    property string textPromptBox
    property string tarDesktopName
    property bool allowGroupItemToTaskbar: false
    property bool groupAnimationState: true

    signal startDrag(bool start)
    // 点击分组内的“添加”按钮显示添加应用的界面
    signal focusStateChanged()
    signal placeholderAdded()
    signal changeGroupHeight()
    signal launcherItemToDesktop()

    clip: true
    LauncherListView {
        id: listView
    }

    Component {
        id: listViewItemDelegate
        TabletGridView {
            id: gridView
        }
    }

    Component {
        id: gridviewItemDelegate
        TabletGridViewDelegate {

        }
    }
}
